home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / i386 / seq-gas.h < prev    next >
C/C++ Source or Header  |  1992-12-27  |  1KB  |  47 lines

  1. /* Definitions for Sequent Intel 386 using GAS.
  2.    Copyright (C) 1992 Free Software Foundation, Inc.
  3.  
  4. /* Mostly it's like a Sequent 386 without GAS. */
  5.  
  6. #include "i386/sequent.h"
  7.  
  8. /* A C statement or statements which output an assembler instruction
  9.    opcode to the stdio stream STREAM.  The macro-operand PTR is a
  10.    variable of type `char *' which points to the opcode name in its
  11.    "internal" form--the form that is written in the machine description.
  12.  
  13.    GAS version 1.38.1 doesn't understand the `repz' opcode mnemonic.
  14.    So use `repe' instead.  */
  15.  
  16. #undef ASM_OUTPUT_OPCODE
  17. #define ASM_OUTPUT_OPCODE(STREAM, PTR)    \
  18. {                                    \
  19.   if ((PTR)[0] == 'r'                            \
  20.       && (PTR)[1] == 'e'                        \
  21.       && (PTR)[2] == 'p')                        \
  22.     {                                    \
  23.       if ((PTR)[3] == 'z')                        \
  24.     {                                \
  25.       fprintf (STREAM, "repe");                    \
  26.       (PTR) += 4;                            \
  27.     }                                \
  28.       else if ((PTR)[3] == 'n' && (PTR)[4] == 'z')            \
  29.     {                                \
  30.       fprintf (STREAM, "repne");                    \
  31.       (PTR) += 5;                            \
  32.     }                                \
  33.     }                                    \
  34. }
  35.  
  36. /* Define macro used to output shift-double opcodes when the shift
  37.    count is in %cl.  Some assemblers require %cl as an argument;
  38.    some don't.
  39.  
  40.    GAS requires the %cl argument, so override i386/unix.h. */
  41.  
  42. #undef AS3_SHIFT_DOUBLE
  43. #define AS3_SHIFT_DOUBLE(a,b,c,d) AS3 (a,b,c,d)
  44.  
  45. /* Print opcodes the way that GAS expects them. */
  46. #define GAS_MNEMONICS 1
  47.